#!/bin/bash

# 数据备份定时任务脚本
# 用法: 在 crontab 中添加 0 2 * * * /app/scripts/backup_task.sh

LOG_FILE="/app/logs/backup.log"
BACKUP_DIR="/app/data/backups"
DATE=$(date +"%Y%m%d_%H%M%S")

echo "$(date): 开始执行备份任务" >> $LOG_FILE

# 创建备份目录
mkdir -p $BACKUP_DIR

# 示例1: 备份重要文件
if [ -d "/app/data/important" ]; then
    tar -czf "$BACKUP_DIR/important_$DATE.tar.gz" -C /app/data important/
    echo "$(date): 重要文件备份完成: important_$DATE.tar.gz" >> $LOG_FILE
fi

# 示例2: 备份数据库（如果有的话）
if command -v mysqldump &> /dev/null; then
    # 这里需要根据实际数据库配置修改
    # mysqldump -h localhost -u user -p database > "$BACKUP_DIR/database_$DATE.sql"
    echo "$(date): 数据库备份跳过（请配置数据库连接信息）" >> $LOG_FILE
fi

# 示例3: 清理超过7天的旧备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
echo "$(date): 清理旧备份文件完成" >> $LOG_FILE

# 示例4: 上传到阿里云OSS（如果配置了的话）
if command -v ossutil &> /dev/null; then
    # 这里需要先配置 ossutil
    # ossutil cp "$BACKUP_DIR/important_$DATE.tar.gz" oss://your-bucket/backups/
    echo "$(date): OSS上传跳过（请先配置 ossutil）" >> $LOG_FILE
fi

echo "$(date): 备份任务执行完成" >> $LOG_FILE 